<html lang="zh-cn">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document(优化代码)</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        li {
            list-style-type: none;
        }

        .tab {
            width: 978px;
            margin: 100px auto;
        }

        .tab_list {
            height: 39px;
            border: 1px solid #ccc;
            background-color: #f1f1f1;
        }

        .tab_list li {
            float: left;
            height: 39px;
            line-height: 39px;
            padding: 0 20px;
            text-align: center;
            cursor: pointer;
        }

        .tab_list .current {
            background-color: deepskyblue;
            color: #fff;
        }

        .item_info {
            padding: 20px 0 0 20px;
        }

        .item {
            display: none;
        }
    </style>
</head>

<body>
    <div class="tab">
        <!-- 导航 -->
        <div class="tab_list">
            <ul>
                <li>商品介绍</li>
                <li class="current">规格与包装</li>
                <li>售后保障</li>
                <li>商品评价（50000）</li>
                <li>手机社区</li>
            </ul>
        </div>

        <!-- 内容 -->
        <div class="tab_con">
            <div class="item">
                商品介绍模块内容
            </div>
            <div class="item" style="display: block;">
                规格与包装模块内容
            </div>
            <div class="item">
                售后保障模块内容
            </div>
            <div class="item">
                商品评价（50000）模块内容
            </div>
            <div class="item">
                手机社区模块内容
            </div>

        </div>
    </div>

    <script>

        // 要求：
        // tab选项卡
        // 点击导航选项，显示与之相对应的内容模块

        // 思考：
        // 如何控制导航选项的类名(class="current")
        // 如何控制内容模块的样式(style="display:block")
        // 如何获取导航选项的下标（data-index=索引值）

        // 编码：
        // 1.0 获取页面相关的元素
        // var navItems = document.querySelectorAll(".tab_list li");
        // var conItems = document.querySelectorAll(".tab_con .item");

        // // 2.0 事件绑定
        // for(var i = 0 ; i < navItems.length ; i ++){
        //     // 设置自定义属性
        //     navItems[i].setAttribute("data-index",i);
        //     // 事件绑定
        //     navItems[i].onclick = function(){// 事件作用域的i变量是多少？ 5
        //         // 3.0 书写处理逻辑(排他逻辑)
        //         for(var j = 0 ; j < navItems.length;j ++){
        //             // 设置其他导航选项移除高亮
        //             navItems[j].className = "";
        //             // 设置其他内容选项隐藏
        //             conItems[j].style.display="none";
        //         }
        //         // 获取自定义属性值 
        //         // var index = this.getAttribute("data-index");
        //         var index = this.dataset.index;

        //         // 设置当前点击的标签背景高亮(this是事件的调用者)
        //         this.className = "current";
        //         // 找出内容相应的下标
        //         conItems[index].style.display="block";
        //     }
        // }

        // 问题：
        // ES5 , 利用var 关键字做循环的时候
        // 事件作用域的i变量是多少？ 5
        // console.log(i);// 
        // i 是全局变量 ， 循环结束就是 5 
        // 事件是个行为，行为没有发生，代码不执行，行为发生了，i已经变成5了

        var navItems_1 = document.querySelectorAll(".tab_list ul > li");
        var conItems_1 = document.querySelectorAll(".tab_con > .item");

        for (var i = 0; i < navItems_1.length; i++) {
            navItems_1[i].setAttribute("data-index", i);
            // var too = navItems_1[i].getAttribute("data-index");
            // console.log(too);       
            navItems_1[i].onclick = function () {
                for (var j = 0; j < navItems_1.length; j++) {
                    navItems_1[j].className = "";
                    conItems_1[j].style["display"] = "none";
                }
                var index = this.dataset.index;
                this.className = "current";
                conItems_1[index].style["display"] = "block";
            }
        }

        // <span>（ 0 ）</span>
        //     <span>（ 0 ）</span >
        //         <span>（ 0 ）</span >
        //             <span>（ 0 ）</span >

            for(var i = 0 ; i < navItems_1.length ; i++) {
                navItems_1[i].setAttribute("data-index", i);
                navItems_1[i].onclick = function () {
                    for(var j = 0 ; j < navItems_1.length ; j ++) {
                        navItems_1[j].className = "";
                        conItems_1[j].style["display"] = "none";
                    }
                    var index = this.dataset.index;
                    this.className = "currnent";
                    conItems_1[index].style["display"] = "block";
                }
            }
    </script>
</body>

</html>